---
title: clsMCOProvider
summary: API reference for clsMCOProvider.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
library: SAIF.Business.View.Provider
reference_type: embedded
---

# clsMCOProvider

`clsMCOProvider` represents one MCO (managed care organization) enrollment for a provider location from `MCO_PROVIDER`. During construction by `clsMCOProviderList`, each instance is decorated with plan details fetched from `SAIF.Business`'s `GetMCOInfo`, and the plan attachment is validated to ensure the submitted plan matches the plan ID already recorded on the enrollment.

## Purpose
- Carries the effective/expiration date window and plan identifier for one MCO enrollment.
- Validates, via `SetPlan`, that the `MCOPlanInfo` attached to this enrollment matches its own recorded plan ID, throwing when they diverge ([BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id)).
- Applies the shared date-window evaluation pattern to determine whether the enrollment is currently in effect ([BR-DATE-001](../../business-rules.md#br-date-001-dated-records-are-in-effect-within-their-date-window)).

## Context
- Namespace: `SAIF.Business.View.Provider`
- Assembly/package: `SAIF.Business.View.Provider` (embedded/project-compiled); also distributed as the NuGet package `SAIF.BOF.Business.View.Provider`.

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `ProviderLocationID` | `ReadOnly Property ProviderLocationID As Decimal` | Identifies the location enrolled with the MCO plan. |
| `PlanID` | `ReadOnly Property PlanID As String` | The MCO plan identifier recorded for this enrollment, checked by `SetPlan` against the attached `MCOPlanInfo` ([BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id)). |
| `Plan` | `ReadOnly Property Plan As MCOPlanInfo` | The plan detail object attached via `SetPlan`, sourced from `GetMCOInfo` in `SAIF.Business`. |
| `EffectiveDate` | `ReadOnly Property EffectiveDate As Date` | Date from which this MCO enrollment applies ([BR-DATE-001](../../business-rules.md#br-date-001-dated-records-are-in-effect-within-their-date-window)). |
| `ExpirationDate` | `ReadOnly Property ExpirationDate As Date` | Date after which this MCO enrollment no longer applies, if one exists. |
| `IsActive` | `ReadOnly Property IsActive As Boolean` | True when the enrollment is currently within its effective/expiration window ([BR-DATE-001](../../business-rules.md#br-date-001-dated-records-are-in-effect-within-their-date-window)). |
| `IsExpired` | `ReadOnly Property IsExpired As Boolean` | True when the enrollment's expiration date is in the past. |
| `HasExpirationDate` | `ReadOnly Property HasExpirationDate As Boolean` | True when an expiration date is set for this enrollment. |
| `IsInEffect` | `Function IsInEffect(asOfDate As Date) As Boolean` | True when the given date is on/after the effective date and, if an expiration date exists, on/before it ([BR-DATE-001](../../business-rules.md#br-date-001-dated-records-are-in-effect-within-their-date-window)). |
| `SetPlan` | `Sub SetPlan(plan As MCOPlanInfo)` | Attaches plan detail to this enrollment, throwing `ApplicationException("MCO plan submitted does not match plan assigned.")` if the plan's ID does not match `PlanID` ([BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id)). |

## Behavioral notes
- OP-11: `clsMCOProviderList`'s constructor queries `MCO_PROVIDER` bound on `:ProviderLocationID` (SQL-MCO-01), then for each row calls `SetPlan(GetMCOInfo(inDPI).Plan(prov.PlanID))`, applying [BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id) as each enrollment is decorated.
- `GetMCOInfo` is implemented in `SAIF.Business`, outside this repository; its internal lookup behavior is not visible here.**

## Constraints and usage notes
- Constructing an enrollment with mismatched plan data will throw rather than silently attaching incorrect plan information — callers should not catch and suppress this exception without understanding the data-integrity implication ([BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id)).
- Read-only data holder with no create/update/delete surface.

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- SAIF.Business.View.Provider/clsMCOProvider.vb
